package com.ruoyi.ae.api.domain;

import lombok.Data;

import java.util.List;

@Data
public class AeHandoverCommitInfo {
    private String sellerId;

    //店铺LP单号列表，seller_id/user_nick（店铺标记） 只传输一种即可； 店铺标记与order_code_list（小包LP****号集合）为一一对应关系，不可使用A店铺seller_id/user_nick 对应 B店铺order_code_list（小包LP****号集合），这样会导致组包漏组或者小包找不到
    private List<SellerParcelOrderList> seller_parcel_order_list;
    //是否跳过不允许组包的小包（包括：状态不允许组包，已经组过包，揽收仓不一致，发货方式不一致）
    private Boolean skip_invalid_parcel;
    //大包备注
    private String remark;
    //退件信息
    private Object return_info;
    //揽收信息
    private PickupInfo pickup_info;
    //要创建交接单的小包编码集合，数量上限1000(即将下线，请使用seller_parcel_order_list)
    private String order_code_list;
    //大包重量
    private Long weight;
    //用户信息
    private UserInfo user_info;
    //重量单位，克:g, 千克:kg，默认g
    private String weight_unit;
    //交接单类型：cainiao_pickup(菜鸟揽收)、self_post(自寄)、self_send(自送)
    private String type;
    //ISV名称，ISV：ISV-ISV英文或拼音名称、商家ERP：SELLER-商家英文或拼音名称
    private String client;
    //扩展字段
    //private Object features;
    // 多语言
    private String locale;
    //预约交货方式（bigbag：大包预约，batch：批次预约））
    private String appointment_type;
    //国内运单号（交接单类型type为self_post(自寄)时必填）
    private String domestic_tracking_no;
    //国内物流公司id（交接单类型type为self_post(自寄)时必填）
    private Long domestic_logistics_company_id;
    //国内物流公司编码（交接单类型type为self_post(自寄)时必填）
    private String domestic_logistics_company;

    /**
     * 调用发布后的返回值
     */
    //未组包成功的小包信息
    private String not_commit_parcel_detail;
    //交接物id，即大包id
    private Long handover_content_id;
    //交接批次号，即交接单id
    private Long handover_order_id;
    //交接物编码，即大包LP号
    private String handover_content_code;

    /**
     * 云打印面单返回值
     */
    //面单云打印数据
    private String encryptedData;
    //面单云打印数据MD5加密串
    private String signature;
    //解密结果
    private String endEncryptedData;


    @Data
    public static class PickupInfo {
        private Address address;
        //揽收地址
        private String email;
        //邮箱
        private String mobile;
        //移动电话, 校验格式：^1(3|4|5|6|7|8|9)\d{9}$
        private String phone;
        //固定电话，可空，校验格式：(^0[\d]{2,3}-[\d]{7,8}$)|(^400[\d]{3,4}[\d]{3,4}$)|(400-[\d]{3,4}-[\d]{3,4}$)
        private String name;
        //揽收联系人名称，必须包含中文字符
        private Long address_id;
        //	AE后台维护的发件地址ID
    }

    @Data
    public static class UserInfo {
        private String top_user_key;
    }

    @Data
    public static class SellerParcelOrderList {
        //        private Long seller_id;
        private String[] order_code_list;
        private String user_nick;
    }

    @Data
    public static class Address {
        //邮编
        private String zip_code;
        //详细地址
        private String detail_address;
        //街道
        private String street;
        //区
        private String district;
        //市
        private String city;
        //省
        private String province;
        //国家
        private String country;
    }
}
